<?php 

class Model{
	private static $link=NULL;
	/**
	 * 构造函数
	 */
	public function __construct(){
		//连接到数据库
		$this->_connect();
	}
	/**
	 * 连接数据库
	 */
	private function _connect(){
		//第一次为null，所以会连接数据库
		//第二次因为静态变量可以保存起来，所以不需要再次连接了
		if(self::$link) return;
		//连接mysql
		$link = @new Mysqli('127.0.0.1','root','',C('DB_NAME'));
		//$link = new Mysqli('127.0.0.1','root','',C('DB_NAME'));这样会报错
		//如果连接错误
		if($link->connect_errno) die($link->connect_error);
		//设置字符集
		$link->query("SET NAMES " . C('DB_CHARSET'));
		//连接的mysql保存到$link属性里面
		self::$link = $link;
	}
	
	/**
	 * 执行有结果集的方法(select)
	 */
	public function query($sql){
		//调用msyqli的query
		$result = self::$link->query($sql);
		//如果有错误，提示错误
		if(self::$link->errno) die(self::$link->error);
		$rows = array();
		//每次查询，压入一条
		while ($row = $result->fetch_assoc()) {
			$rows[] = $row;
		}
		//释放结果集
		$result->free();
		//返回结果
		return $rows;
	}
	
	/**
	 * 执行无结果集(insert,update,delete)
	 */
	public function exec($sql){
		self::$link->query($sql);
		//如果有错误，提示错误
		if(self::$link->errno) die(self::$link->error);
		//如果有自增id
		if(self::$link->insert_id){
			//返回自增id
			return self::$link->insert_id;
		}else{
			//返回受影响的条数
			return self::$link->affected_rows;
		}
	}
	
	
	
	
	
	
	
}
	
?>